@extends('admin.base')

@section('content')
    <div class="layui-card">
        <div class="layui-card-header layuiadmin-card-header-auto">
            <div class="layui-btn-group ">
                @can('metro.destroy')
                    <button class="layui-btn layui-btn-sm layui-btn-danger" id="listDelete">删 除</button>
                @endcan
                @can('metro.create')
                    <a class="layui-btn layui-btn-sm" href="{{ route('admin.metro.create') }}">添加地铁线</a>
                @endcan
            </div>
            <div class="layui-form" >
                <div class="layui-input-inline" >
                    <select name="province" id="province" lay-verify="required" lay-filter="myselect">
                        <option value="">请选择</option>
                        @foreach($area as $a)
                            <option value="{{$a->id}}" @if(isset($article->province)&&$article->province==$a->id)selected @endif>{{$a->name}}</option>
                        @endforeach
                    </select>
                </div>
                <div class="layui-input-inline">
                    <select name="region" id="region" lay-verify="required" lay-filter="myselect2" ></select>
                </div>
                <div class="layui-input-inline">
                    <input type="text" name="name" id="name" placeholder="请输入线路名" class="layui-input">
                </div>
                <button class="layui-btn layui-btn-normal" id="searchBtn">搜 索</button>
                <button class="layui-btn layui-btn-danger" id="clearBtn">清空筛选</button>
            </div>
        </div>
        <div class="layui-card-body">
            <table id="dataTable" lay-filter="dataTable"></table>
            <script type="text/html" id="options">
                <div class="layui-btn-group">
                    @can('metro.create')
                        <a class="layui-btn layui-btn-sm layui-btn-normal" lay-event="add">添加地铁站</a>
                    @endcan
                        <a class="layui-btn layui-btn-sm" lay-event="show">查看站点</a>
                    @can('metro.edit')
                        <a class="layui-btn layui-btn-sm layui-btn-warm" lay-event="edit">编辑</a>
                    @endcan
                    @can('metro.destroy')
                        <a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</a>
                    @endcan
                </div>
            </script>
            <script type="text/html" id="metro">
                @{{ d.region }} - @{{ d.name }}
            </script>
            <script type="text/html" id="status">
                @{{# if(d.status == 'T'){ }}
                启用
                @{{# }else{ }}
                禁用
                @{{# }; }}
            </script>
        </div>
    </div>
@endsection

@section('script')
    @can('module.metro')
        <script>
            layui.use(['layer','table','form'],function () {
                var layer = layui.layer;
                var form = layui.form;
                var table = layui.table;
                //用户表格初始化
                var dataTable = table.render({
                    elem: '#dataTable'
                    ,height: 500
                    ,url: "{{ route('admin.metro.data') }}" //数据接口
                    ,page: true //开启分页
                    ,cols: [[ //表头
                        {checkbox: true,fixed: true}
                        ,{field: 'id', title: 'ID', sort: true,width:80}
                        ,{field: 'name', title: '地铁线', toolbar: '#metro'}
                        ,{field: 'sort', title: '排序'}
                        ,{field: 'status', title: '状态', toolbar: '#status'}
                        ,{fixed: 'right', align:'center', toolbar: '#options'}
                    ]]
                });

                //监听工具条
                table.on('tool(dataTable)', function(obj){ //注：tool是工具条事件名，dataTable是table原始容器的属性 lay-filter="对应的值"
                    var data = obj.data //获得当前行数据
                        ,layEvent = obj.event; //获得 lay-event 对应的值
                    if(layEvent === 'del'){
                        layer.confirm('确认删除吗？', function(index){
                            $.post("{{ route('admin.metro.destroy') }}",{_method:'delete',ids:[data.id]},function (result) {
                                if (result.code==0){
                                    obj.del(); //删除对应行（tr）的DOM结构
                                }
                                layer.close(index);
                                layer.msg(result.msg)
                            });
                        });
                    } else if(layEvent === 'edit'){
                        location.href = '/admin/metro/'+data.id+'/edit';
                    } else if(layEvent === 'add'){
                        location.href = '/admin/metro_station/create/'+data.id;
                    } else if(layEvent === 'show'){
                        location.href = '/admin/metro_station/'+data.id;
                    }
                });

                @can('metro.edit')
                //监听是否显示
                form.on('switch(isShow)', function(obj){
                    var index = layer.load();
                    var url = $(obj.elem).attr('url')
                    var data = {
                        "is_show" : obj.elem.checked==true?1:0,
                        "_method" : "put"
                    }
                    $.post(url,data,function (res) {
                        layer.close(index)
                        layer.msg(res.msg)
                    },'json');
                });
                @endcan

                //按钮批量删除
                $("#listDelete").click(function () {
                    var ids = []
                    var hasCheck = table.checkStatus('dataTable')
                    var hasCheckData = hasCheck.data
                    if (hasCheckData.length>0){
                        $.each(hasCheckData,function (index,element) {
                            ids.push(element.id)
                        })
                    }
                    if (ids.length>0){
                        layer.confirm('确认删除吗？', function(index){
                            $.post("{{ route('admin.metro.destroy') }}",{_method:'delete',ids:ids},function (result) {
                                if (result.code==0){
                                    dataTable.reload()
                                }
                                layer.close(index);
                                layer.msg(result.msg)
                            });
                        })
                    }else {
                        layer.msg('请选择删除项')
                    }
                })

                //搜索
                $("#searchBtn").click(function () {
                    var province = $("#province").val()
                    var region = $("#region").val()
                    var name = $("#name").val();
                    dataTable.reload({
                        where:{province_id:province,region_id:region,name:name},
                        page:{curr:1}
                    })
                })

                $("#clearBtn").click(function () {
                    window.location.reload()
                })

                form.on('select(myselect)', function(data){
                    var areaId=(data.value);
                    getAreaData(areaId,'#region')
                });
                function getAreaData(areaId,idattr) {
                    $.ajax({
                        type: 'POST',
                        url: '{{ route('admin.region.getCity') }}',
                        data: {province_id:areaId},
                        dataType:  'json',
                        success: function(data){
                            $(idattr).html("<option value='0'></option>");
                            if (data.status == 'T'){
                                $.each(data.data, function(key, val) {
                                    var option1 = $("<option>").val(val.id).text(val.name);
                                    $(idattr).append(option1);
                                    form.render('select');
                                });
                            }

                        }
                    });
                }
            })
        </script>
    @endcan
@endsection